Concurrent Programming in Haskell
ثبت نشده
چکیده
In this paper, an extension of the non-strict functional language Haskell 3] is presented. It performs the evaluation of expressions by using multiple threads. The synchronous model and the event interface used are similar to Reppy's CML 11], but in this case we must deal with new factors like non-strictness, embedding the synchronous operations into the IO monad. Lazy structures are useful to model the behaviour of processes, in the same way as Hoare's traces in CSP 5]. A great attention is paid to higher-order concurrent abstractions which simplify programmer's work. A prototype implementation has been developed in Yale Haskell.
منابع مشابه
A Rendezvous of Functions and Reactive Objects | Escaping the Evil I
We present an extension to Haskell which supports reactive, concurrent programming with objects, sans the problematic blocking input. We give a semantics together with a number of programming examples, and show an implementation based on a preprocessor, and a library written in Concurrent Haskell.
متن کاملA Haskell-Implementation of STM Haskell with Early Conflict Detection
Software transactional memory treats operations on the shared memory in concurrent programs like data base transactions. STM Haskell integrates this approach in Haskell and provides combinators to build software transactions in a composable way. In previous work we introduced the process calculus CSHF as a formal model for a concurrent implementation of software transactional memory in Concurre...
متن کاملParallelizing DPLL in Haskell
We report on a case study of implementing parallel variants of the DavisPutnam-Logemann-Loveland algorithm for solving the SAT problem of propositional formulas in the functional programming language Haskell. We explore several state of the art programming techniques for parallel and concurrent programming in Haskell and provide the corresponding implementations. Based on our experimental resul...
متن کاملIntel Concurrent Collections for Haskell
Intel Concurrent Collections (CnC) is a parallel programming model in which a network of steps (functions) communicate through message-passing as well as a limited form of shared memory. This paper describes a new implementation of CnC for Haskell. Compared to existing parallel programming models for Haskell, CnC occupies a useful point in the design space: pure and deterministic like Strategie...
متن کاملNetwork Protocol Programming in Haskell
Over seven years, we have developed several network protocol libraries including anti-spam, DNS, HTTP/1.1, HTTP/2 and TLS 1.3 in Haskell. Based on these experiences, we regard Haskell as a safe and highly-concurrent network programming language thanks to its strong type system and lightweight threads (i.e. green threads). This paper describes advantages and disadvantages of Haskell and reports ...
متن کاملConcurrent Quantum Programming in Haskell
This paper applies established techniques for concurrent programming in Haskell to the case of Concurrent Quantum Programming. The foundation of the approach is an extension to Concurrent Quantum Programming of the technique of “virtual values” proposed by Amr Sabry for quantum programming in Haskell. The basic idea is to encapsulate quantum values within MVars, the monadic variables that suppo...
متن کامل